GtkFileChooserEntry: don't inline-complete if the entry doesn't have the focus
authorFederico Mena Quintero <federico@gnome.org>
Fri, 21 Jun 2013 23:34:31 +0000 (18:34 -0500)
committerFederico Mena Quintero <federico@gnome.org>
Fri, 21 Jun 2013 23:35:28 +0000 (18:35 -0500)
When the file chooser changes directories, it tells the GtkFileChooserEntry to
change its base folder (i.e. the folder from which relative pathnames are resolved).
GtkFileChooserEntry then starts loading a GtkFileSystemModel asynchronously.
In the finished_loading_cb(), however, it would always ask the GtkEntryCompletion
to insert the completion prefix, since that finished_loading_cb() is what is also used
while the user is typing *in the entry*.

But when the entry doesn't have the focus (e.g. the user changed directories by double-clicking
on the file list in the file chooser), there's no reason to insert completions at all.

https://bugzilla.gnome.org/show_bug.cgi?id=672271
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
gtk/gtkfilechooserentry.c

index ce2b6cc9e7b38dbafe1c0837612541321249105d..013947ea020cee70042f236a130c0626244552a7 100644 (file)
@@ -548,8 +548,12 @@ finished_loading_cb (GtkFileSystemModel  *model,
 
   completion = gtk_entry_get_completion (GTK_ENTRY (chooser_entry));
   update_inline_completion (chooser_entry);
-  gtk_entry_completion_complete (completion);
-  gtk_entry_completion_insert_prefix (completion);
+
+  if (gtk_widget_has_focus (GTK_WIDGET (chooser_entry)))
+    {
+      gtk_entry_completion_complete (completion);
+      gtk_entry_completion_insert_prefix (completion);
+    }
 }
 
 static void